package project.web_2.model;

import java.util.LinkedList;
import java.util.List;

import javax.xml.bind.annotation.XmlRootElement;

/**
 * This class represent a city manager, it can  
 * <ul>
 * 	<li>add a city</li>
 * 	<li>remove a city</li>
 * 	<li>return the list of cities</li>	
 * 	<li>search a city with a given name</li>
 *  <li>search a city at a position</li>
 * 	<li>return the list of cities near 10km of the given position</li>
 * </ul>
 *
 */
@XmlRootElement
public class ResumeManager {
	
	// ATTRIBUTS

	// La liste des villes dans ce cityManager
	private List<Resume> resumes;
	
	// CONSTRUCTEURS
	
	/**
	 * Un gestionnaire de villes sans villes à l'initialisation.
	 */
	public ResumeManager() {
		this.resumes = new LinkedList<Resume>();
	}
	
	// REQUETES

	/**
	 * @return la liste des villes dans ce gestionnaire.
	 */
	public List<Resume> getResumes() {
		return resumes;
	}
	
	/**
	 * @return le CV d'id id.
	 */
	public Resume getResume(int id) throws ResumeNotFound {
		if (id >= resumes.size()) {
			throw new ResumeNotFound();
		}
		return resumes.get(id);
	}
	
	// COMMANDES

	/**
	 * Remplace toutes les villes présentes dans ce gestionnaire.
	 * @param cities les villes à mettre en remplacement
	 */
	public void setResumes(List<Resume> resumes) {
		this.resumes = resumes;
	}
	
	/**
	 * Ajoute une ville si elle n'est pas déjà présente.
	 * @param city la ville à ajouter
	 * @return true si l'ajout a bien été fait
	 */
	public boolean addResume(Resume resume) {
		if (!resumes.contains(resume)) {
			return resumes.add(resume);
		}
		return false;
	}
	
}
